package com.wmh.baseservice.robot.pojo.dto.robottaskadpushunit;

import com.wmh.baseservice.robot.enums.RobotPushTaskType;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @author 谢骏
 * @date 2023/9/11 9:34
 * 发布任务单元 请求参数对象
 **/
@Data
@Accessors(chain = true)
public class RobotTaskAdPushUnitPushReqVO {

    @NotNull(message = "任务列表不能为空")
    @NotEmpty(message = "任务列表不能为空")
    private List<Item> taskList;

    /**
     * 发布人编号
     */
    @NotNull(message = "发布人编号不能为空")
    private Long adId;

    /**
     * 管理员邮箱
     */
    @NotBlank(message = "管理员邮箱不能为空")
    private String adEmail;

    /**
     * 是否测试执行
     */
    @NotNull(message = "isTest 不能为空")
    private Boolean isTest;

    /**
     * 任务类型 {@link RobotPushTaskType}
     */
    @NotNull(message = "任务类型不能为空")
    private Integer pushTaskType;

    @Data
    @Accessors(chain = true)
    public static class Item {
        /**
         * 发布任务单元编号
         */
        @NotNull(message = "发布单元编号不能为空")
        private Long pushTaskId;

        /**
         * 发布单元名称
         */
        @NotBlank(message = "发布单元名称不能为空")
        private String name;

        /**
         * 任务参数
         */
        @NotBlank(message = "任务参数不能为空")
        private String param;

        /**
         * 机器任务编号
         */
        @NotNull(message = "机器任务编号不能为空")
        private Long robotTaskId;

        /**
         * 机器任务名称
         * */
        @NotBlank(message = "任务名称不能为空")
        private String robotTaskName;

        /**
         * 任务报表编号
         */
        @NotNull(message = "报表编号不能为空")
        private Long statementId;
    }
}
